// detail.js
const app = getApp();

Page({
  data: {
    id: null,
    product: null,
    isFavorite: false,
    cartCount: 0,
    showSpecPopup: false,
    selectedDate: '',
    selectedSpec: null,
    quantity: 1,
    buyType: '', // 'cart' 或 'buy'
    activeTag: 0,
    reviewTags: [
      { name: '全部', count: 120 },
      { name: '好评', count: 110 },
      { name: '有图', count: 35 },
      { name: '行程体验', count: 42 },
      { name: '服务态度', count: 38 },
      { name: '住宿体验', count: 25 }
    ],
    reviews: [
      {
        id: 1,
        userName: '用户123456',
        userAvatar: 'https://picsum.photos/id/1005/200/200',
        rating: 5,
        content: '行程安排很合理，导游服务也很好，住宿条件超出预期，非常满意这次旅行！',
        images: [
          'https://picsum.photos/id/1036/200/200',
          'https://picsum.photos/id/1037/200/200',
          'https://picsum.photos/id/1038/200/200'
        ],
        createTime: '2025-07-15',
        reply: '感谢您的支持和认可，我们会继续努力提供更好的服务！'
      },
      {
        id: 2,
        userName: '旅行爱好者',
        userAvatar: 'https://picsum.photos/id/1012/200/200',
        rating: 4,
        content: '整体不错，就是有些景点人太多了，建议错峰出行。',
        images: [],
        createTime: '2025-07-10',
        reply: ''
      }
    ]
  },

  onLoad: function(options) {
    // 获取商品ID
    if (options.id) {
      this.setData({
        id: options.id
      });
      
      // 获取商品详情
      this.fetchProductDetail();
      
      // 检查是否已收藏
      this.checkFavorite();
      
      // 获取购物车数量
      this.getCartCount();
    }
  },

  onShow: function() {
    // 如果需要每次显示页面都刷新数据，可以在这里调用
  },

  onShareAppMessage: function() {
    const product = this.data.product;
    
    return {
      title: product ? product.title : '云途旅行',
      path: `/pages/detail/detail?id=${this.data.id}`,
      imageUrl: product ? product.images[0] : ''
    };
  },

  // 获取商品详情
  fetchProductDetail: function() {
    // 实际项目中应该从服务器获取数据
    // 这里使用模拟数据
    setTimeout(() => {
      // 模拟数据
      const mockProduct = {
        id: this.data.id,
        title: '美宿 | 西北寻秋 青甘环线7天6晚',
        description: '青海湖、茶卡盐湖、张掖丹霞、莫高窟、鸣沙山月牙泉一网打尽',
        price: 8380,
        originalPrice: 9999,
        rating: 4.8,
        ratingCount: 120,
        salesCount: 256,
        isHot: true,
        isNew: false,
        images: [
          'https://picsum.photos/id/1016/750/500',
          'https://picsum.photos/id/1018/750/500',
          'https://picsum.photos/id/1019/750/500'
        ],
        itinerary: [
          {
            day: 1,
            title: '西宁接机 - 青海湖',
            schedule: [
              {
                time: '全天',
                title: '抵达西宁',
                description: '西宁曹家堡机场接机，入住酒店休息。',
                image: ''
              },
              {
                time: '下午',
                title: '青海湖',
                description: '前往青海湖二郎剑景区，欣赏中国最大的内陆咸水湖。',
                image: 'https://picsum.photos/id/1036/600/400'
              },
              {
                time: '晚上',
                title: '晚餐',
                description: '享用青海特色晚餐，品尝当地美食。',
                image: ''
              }
            ]
          },
          {
            day: 2,
            title: '茶卡盐湖 - 德令哈',
            schedule: [
              {
                time: '上午',
                title: '茶卡盐湖',
                description: '前往茶卡盐湖，体验"天空之镜"的壮观景色。',
                image: 'https://picsum.photos/id/1039/600/400'
              },
              {
                time: '下午',
                title: '德令哈',
                description: '前往德令哈市，途经察尔汗盐湖。',
                image: ''
              },
              {
                time: '晚上',
                title: '入住酒店',
                description: '德令哈市区入住酒店休息。',
                image: ''
              }
            ]
          },
          {
            day: 3,
            title: '德令哈 - 敦煌',
            schedule: [
              {
                time: '上午',
                title: '德令哈外星人遗址',
                description: '参观德令哈外星人遗址，了解神秘的外星文化。',
                image: ''
              },
              {
                time: '下午',
                title: '前往敦煌',
                description: '长途驱车前往敦煌，途经雅丹地质公园。',
                image: 'https://picsum.photos/id/1040/600/400'
              },
              {
                time: '晚上',
                title: '敦煌夜市',
                description: '抵达敦煌后，可自由前往敦煌夜市游览。',
                image: ''
              }
            ]
          }
        ],
        includes: [
          '全程住宿：当地四星级酒店双人标准间',
          '用餐：行程中所列早餐、午餐和晚餐',
          '交通：全程空调旅游车',
          '门票：行程中所列景点第一道门票',
          '导游：专业中文导游服务',
          '保险：旅行社责任险'
        ],
        excludes: [
          '往返大交通费用（机票、火车票等）',
          '个人消费及自由活动期间的费用',
          '行程中未提及的其他费用',
          '单房差费用',
          '旅游意外险（建议自行购买）'
        ],
        notices: [
          {
            title: '预订须知',
            content: '请至少提前3天预订，预订后客服会与您确认行程细节。'
          },
          {
            title: '退改政策',
            content: '出发前7天以上取消，全额退款；出发前3-7天取消，收取总费用的30%；出发前1-3天取消，收取总费用的50%；出发当天取消，收取总费用的100%。'
          },
          {
            title: '注意事项',
            content: '请根据目的地天气情况准备合适的衣物和必要的药品；行程中请听从导游安排，注意人身和财产安全；高原地区请做好高原反应的预防措施。'
          }
        ],
        merchant: {
          id: 1,
          name: '云途旅行社',
          logo: 'https://picsum.photos/id/1005/200/200',
          description: '专注西北地区旅游10年，提供高品质旅行体验。'
        },
        dates: [
          '2025-08-15',
          '2025-08-20',
          '2025-08-25',
          '2025-09-01',
          '2025-09-05',
          '2025-09-10'
        ],
        specs: [
          {
            id: 1,
            name: '标准套餐',
            price: 8380,
            description: '含全程四星酒店住宿'
          },
          {
            id: 2,
            name: '舒适套餐',
            price: 9580,
            description: '含全程五星酒店住宿'
          },
          {
            id: 3,
            name: '豪华套餐',
            price: 12800,
            description: '含全程五星酒店住宿+专车接送'
          }
        ]
      };
      
      this.setData({
        product: mockProduct
      });
    }, 500);
    
    // 实际项目中的云函数调用
    // wx.cloud.callFunction({
    //   name: 'getProductDetail',
    //   data: {
    //     id: this.data.id
    //   },
    //   success: res => {
    //     if (res.result && res.result.data) {
    //       this.setData({
    //         product: res.result.data
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('获取商品详情失败', err);
    //     wx.showToast({
    //       title: '获取商品详情失败',
    //       icon: 'none'
    //     });
    //   }
    // });
  },

  // 检查是否已收藏
  checkFavorite: function() {
    // 检查登录状态
    if (!app.globalData.isLoggedIn) {
      return;
    }
    
    // 获取收藏列表
    const favorites = wx.getStorageSync('favorites') || [];
    
    // 检查当前商品是否在收藏列表中
    const isFavorite = favorites.some(item => item.id === this.data.id);
    
    this.setData({
      isFavorite: isFavorite
    });
    
    // 实际项目中的云函数调用
    // wx.cloud.callFunction({
    //   name: 'checkFavorite',
    //   data: {
    //     productId: this.data.id
    //   },
    //   success: res => {
    //     if (res.result) {
    //       this.setData({
    //         isFavorite: res.result.isFavorite
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('检查收藏状态失败', err);
    //   }
    // });
  },

  // 获取购物车数量
  getCartCount: function() {
    // 获取购物车列表
    const cart = wx.getStorageSync('cart') || [];
    
    // 计算购物车商品总数
    const cartCount = cart.reduce((total, item) => total + item.quantity, 0);
    
    this.setData({
      cartCount: cartCount
    });
    
    // 实际项目中的云函数调用
    // wx.cloud.callFunction({
    //   name: 'getCartCount',
    //   success: res => {
    //     if (res.result) {
    //       this.setData({
    //         cartCount: res.result.count
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('获取购物车数量失败', err);
    //   }
    // });
  },

  // 切换收藏状态
  toggleFavorite: function() {
    // 检查登录状态
    if (!app.globalData.isLoggedIn) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    
    const isFavorite = this.data.isFavorite;
    const product = this.data.product;
    
    if (!product) return;
    
    // 获取收藏列表
    let favorites = wx.getStorageSync('favorites') || [];
    
    if (isFavorite) {
      // 取消收藏
      favorites = favorites.filter(item => item.id !== this.data.id);
      
      wx.showToast({
        title: '已取消收藏',
        icon: 'success'
      });
    } else {
      // 添加收藏
      favorites.unshift({
        id: product.id,
        title: product.title,
        image: product.images[0],
        price: product.price,
        addTime: new Date().getTime()
      });
      
      wx.showToast({
        title: '收藏成功',
        icon: 'success'
      });
    }
    
    // 保存收藏列表
    wx.setStorageSync('favorites', favorites);
    
    // 更新收藏状态
    this.setData({
      isFavorite: !isFavorite
    });
    
    // 实际项目中的云函数调用
    // wx.cloud.callFunction({
    //   name: 'toggleFavorite',
    //   data: {
    //     productId: this.data.id,
    //     action: isFavorite ? 'remove' : 'add'
    //   },
    //   success: res => {
    //     if (res.result && res.result.success) {
    //       this.setData({
    //         isFavorite: !isFavorite
    //       });
    //       
    //       wx.showToast({
    //         title: isFavorite ? '已取消收藏' : '收藏成功',
    //         icon: 'success'
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('操作收藏失败', err);
    //     wx.showToast({
    //       title: '操作失败',
    //       icon: 'none'
    //     });
    //   }
    // });
  },

  // 联系客服
  contactCustomerService: function() {
    wx.showToast({
      title: '正在连接客服...',
      icon: 'loading',
      duration: 2000
    });
    
    // 实际项目中可以跳转到客服会话页面
    // wx.navigateTo({
    //   url: '/pages/customer-service/customer-service'
    // });
  },

  // 联系商家
  contactMerchant: function() {
    wx.makePhoneCall({
      phoneNumber: '400-123-4567',
      success: function() {
        console.log('拨打电话成功');
      },
      fail: function() {
        console.log('拨打电话失败');
      }
    });
  },

  // 跳转到购物车
  goToCart: function() {
    wx.navigateTo({
      url: '/pages/cart/cart'
    });
  },

  // 加入购物车
  addToCart: function() {
    this.setData({
      buyType: 'cart',
      showSpecPopup: true
    });
  },

  // 立即购买
  buyNow: function() {
    this.setData({
      buyType: 'buy',
      showSpecPopup: true
    });
  },

  // 关闭规格弹窗
  closeSpecPopup: function() {
    this.setData({
      showSpecPopup: false
    });
  },

  // 选择日期
  selectDate: function(e) {
    const date = e.currentTarget.dataset.date;
    
    this.setData({
      selectedDate: date
    });
  },

  // 选择规格
  selectSpec: function(e) {
    const spec = e.currentTarget.dataset.spec;
    
    this.setData({
      selectedSpec: spec
    });
  },

  // 减少数量
  decreaseQuantity: function() {
    if (this.data.quantity <= 1) return;
    
    this.setData({
      quantity: this.data.quantity - 1
    });
  },

  // 增加数量
  increaseQuantity: function() {
    this.setData({
      quantity: this.data.quantity + 1
    });
  },

  // 确认规格
  confirmSpec: function() {
    // 检查是否已选择日期和规格
    if (!this.data.selectedDate) {
      wx.showToast({
        title: '请选择出发日期',
        icon: 'none'
      });
      return;
    }
    
    if (!this.data.selectedSpec) {
      wx.showToast({
        title: '请选择套餐类型',
        icon: 'none'
      });
      return;
    }
    
    const product = this.data.product;
    const selectedSpec = this.data.selectedSpec;
    const selectedDate = this.data.selectedDate;
    const quantity = this.data.quantity;
    
    // 构建订单项
    const orderItem = {
      id: Date.now(),
      productId: product.id,
      title: product.title,
      image: product.images[0],
      spec: selectedSpec.name,
      date: selectedDate,
      price: selectedSpec.price,
      quantity: quantity,
      totalPrice: selectedSpec.price * quantity
    };
    
    if (this.data.buyType === 'cart') {
      // 加入购物车
      let cart = wx.getStorageSync('cart') || [];
      cart.push(orderItem);
      wx.setStorageSync('cart', cart);
      
      // 更新购物车数量
      this.setData({
        cartCount: cart.reduce((total, item) => total + item.quantity, 0)
      });
      
      // 关闭弹窗
      this.closeSpecPopup();
      
      wx.showToast({
        title: '已加入购物车',
        icon: 'success'
      });
      
      // 实际项目中的云函数调用
      // wx.cloud.callFunction({
      //   name: 'addToCart',
      //   data: orderItem,
      //   success: res => {
      //     if (res.result && res.result.success) {
      //       this.closeSpecPopup();
      //       
      //       wx.showToast({
      //         title: '已加入购物车',
      //         icon: 'success'
      //       });
      //       
      //       // 更新购物车数量
      //       this.getCartCount();
      //     }
      //   },
      //   fail: err => {
      //     console.error('加入购物车失败', err);
      //     wx.showToast({
      //       title: '加入购物车失败',
      //       icon: 'none'
      //     });
      //   }
      // });
    } else if (this.data.buyType === 'buy') {
      // 立即购买
      // 保存订单信息到本地
      wx.setStorageSync('currentOrder', [orderItem]);
      
      // 关闭弹窗
      this.closeSpecPopup();
      
      // 跳转到订单确认页
      wx.navigateTo({
        url: '/pages/order/confirm'
      });
      
      // 实际项目中的云函数调用
      // wx.cloud.callFunction({
      //   name: 'createOrder',
      //   data: {
      //     items: [orderItem],
      //     type: 'direct'
      //   },
      //   success: res => {
      //     if (res.result && res.result.success) {
      //       this.closeSpecPopup();
      //       
      //       // 跳转到订单确认页
      //       wx.navigateTo({
      //         url: `/pages/order/confirm?orderId=${res.result.orderId}`
      //       });
      //     }
      //   },
      //   fail: err => {
      //     console.error('创建订单失败', err);
      //     wx.showToast({
      //       title: '创建订单失败',
      //       icon: 'none'
      //     });
      //   }
      // });
    }
  },

  // 选择评价标签
  selectReviewTag: function(e) {
    const index = e.currentTarget.dataset.index;
    
    this.setData({
      activeTag: index
    });
    
    // 根据标签筛选评价
    this.filterReviews(index);
  },

  // 筛选评价
  filterReviews: function(tagIndex) {
    // 实际项目中应该从服务器获取数据
    // 这里使用模拟数据
    
    // 根据标签筛选评价
    // wx.cloud.callFunction({
    //   name: 'getReviews',
    //   data: {
    //     productId: this.data.id,
    //     tagIndex: tagIndex
    //   },
    //   success: res => {
    //     if (res.result && res.result.data) {
    //       this.setData({
    //         reviews: res.result.data
    //       });
    //     }
    //   },
    //   fail: err => {
    //     console.error('获取评价失败', err);
    //   }
    // });
  },

  // 查看全部评价
  goToAllReviews: function() {
    wx.navigateTo({
      url: `/pages/reviews/reviews?id=${this.data.id}`
    });
  },

  // 预览图片
  previewImage: function(e) {
    const current = e.currentTarget.dataset.current;
    const urls = e.currentTarget.dataset.urls;
    
    wx.previewImage({
      current: current,
      urls: urls
    });
  }
});